Signal equalization is needed in a digital receiver system to recover signals over multi-path channel. Such a multi-path channel, for example wireless channel that has reflections, and optical channel using polarization multiplexing (Pol-Mux) which may have inter-polarization signal mixing, causes inter-symbol-interference (ISI). Equalization method is used in such system to remove the ISI and recover the original signal.
Blind equalization is commonly used in these systems. One reason is because transmitting training symbols is sometime undesirable or costly; another is that in some cases blind equalization has better noise tolerance comparing to training-based solutions. Blind equalization typically achieves parameter optimization through cost minimization using stochastic gradient descent in both batch and adaptive algorithms. In general, stochastic descent algorithms typically require large number of iterations or long data samples to converge. The batch approach is generally based on data reuse (recycling) and refiltering to recompute the cost gradient after each iterative parameter update, thereby causing long processing delays.
Commonly used blind equalizers include Constant Modulus Algorithm (CMA) and Shalvi-Weinstein Algorithm (SWA). For these two techniques, the criteria for equalizer parameter optimization (adaptation) are based on minimizing cost functions that depends on the 4th-order statistics of the equalizer output and the channel output signals. Given limited number of channel output data samples, equalizer's parameter adaptation can only be approximated. One simple approximation approach is to apply stochastic gradient descent (SGD) with the CMA or the SWA such that the statistical expectation in the gradient calculation is removed, and that the gradient at each iteration is approximated by its instantaneous value. The SGD implementation of the CMA/SWA can be carried out either by utilizing fresh data samples from channel output in each iteration, or by recycling the same set of channel output data multiple times. The traditional SGD usually requires a large number of channel output samples to converge, thereby making some short packet data applications unsuitable. Alternatively, the same set of channel output samples are recycled in SGD iterations. This recycled SGD (RC-SGD) implementation can be applied even though the size of the channel output samples is relatively short (e.g. in GSM). The shortcoming of the RC-SGD is that in each iteration, the equalizer output has to be recalculated for the recently updated equalizer. This recycling and recalculation process is sequential and can lead to idle time, leading to long process delays. In addition, both SGD require large number of iterations to approach the steepest descent, causing slow convergence and improper adjustment.
FIG. 1 is an exemplary block diagram of a conventional system. Signal input x(k) 102 is first written into buffer 104, which is particularly needed in RC-SGD case so that the data can be used repeatedly. Readout data 112 from buffer 104 is fed to both the convolution block 106 to calculate output based on current parameters, and to CMA/SWA module 110 as input for parameter update. Convolution output y(k) (108) is the decoded output signal, and fed back to CMA/SWA 110 for update as well. The updated parameters w are passed to convolution block 106 for next sample processing.
One drawback for blind equalization is the need of long samples sequence for convergence, i.e., from the starting of initial state to the state reaching optimum output. For example, a Constant Modulus Algorithm (CMA) may need over 10,000 samples to get convergence. This long convergence time may result in long processing latency, which should be avoided in time-sensitive applications; or the long latency may cause the system to be unable to track the fast changing of a dynamic channel. One example for the latter scenario is in optical communication using Pol-Mux for long distance transmission, which may cause polarization rotating frequency above kilo-Hertz, thus long convergence time may not be able to track the polarization change.
Also, conventional techniques are not suitable for parallel processing, for example a system contains multiple chips that can perform channel tracking in parallel, the convergence time does not benefit from this parallelization. This either result in independent processing of each component, or waste of resource in having some components idling.